7
תגובות
במדריך בונים פריימוורק - ניתוב קונטרולרים נתון קובץ htaccess.
איך הוא משפיע על הכתובות ובא לידי ביטוי?
אם אני רוצה לגשת לקונטרולר MainController למטודה Main - זה הכתובת: matan.co.il/Main/Main ?
איך הוא משפיע על הכתובות ובא לידי ביטוי?
אם אני רוצה לגשת לקונטרולר MainController למטודה Main - זה הכתובת: matan.co.il/Main/Main ?
7 תשובות
# להפעיל את מנוע הרירייט
RewriteEngine On
# אם הנתיב שהוזן לא מוביל ישירות לתיקיה
RewriteCond %{REQUEST_FILENAME} !-d
# וגם אם הנתיב שהוזן אינו מוביל ישירות לקובץ
RewriteCond %{REQUEST_FILENAME} !-f
# וגם אם הנתיב שהוזן אינו symbolic link
RewriteCond %{REQUEST_FILENAME} !-l
# אם כל התנאים למעלה מתקיימים כולם ביחד, אז
# להפנות את כל כל כל הכתובות שהוזנו אל הכתובת
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
# כאשר $1 מסמן את הטקסט שהוזן בתור כתובת
#ראה דוגמאות למטה
RewriteEngine On
# אם הנתיב שהוזן לא מוביל ישירות לתיקיה
RewriteCond %{REQUEST_FILENAME} !-d
# וגם אם הנתיב שהוזן אינו מוביל ישירות לקובץ
RewriteCond %{REQUEST_FILENAME} !-f
# וגם אם הנתיב שהוזן אינו symbolic link
RewriteCond %{REQUEST_FILENAME} !-l
# אם כל התנאים למעלה מתקיימים כולם ביחד, אז
# להפנות את כל כל כל הכתובות שהוזנו אל הכתובת
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
# כאשר $1 מסמן את הטקסט שהוזן בתור כתובת
#ראה דוגמאות למטה
אם למשל הכתובת שאליה פנו היא
site.com/style.css
ויש קובץ כזה style.css אז התנאי לא יופעל
אם הוזנה כתובת שהיא לא קיימת בשרת (לא תיקיה, לא קובץ ולא קישור סימבולי)
אז יתבצע התנאי של העעברה.
התנאי של העברה אומר
.com/123hellosite.com/ANYTHING_THAT_COMES_HERE
יופנה לכתובת
index.php?url=ANYTHING_THAT_COMES_HERE.com/123hello
כלומר אל קובץ האינדקס עם הכתובת בתור פרמטר.
נשאר להבין מה עושה הקוד בקובץ האינדקס עם הפרמטר הזה. תסתדר לבד?
תודה אלכס את זה אני הבנתי, וגם עם ה-php אני מסתדר מצוין.. פשוט הבעיה היא שאצלי מתקבל ארור.
Internal Server Error
אשמח לתשובה מהירה, תודה רבה!
פותחים את הלוג של אפאצ'י וקוראים מה השגיאה.
אי אפשר לנחש ממה נובעת השגיאה רק על סמח זה שכתוב לך על המסך "שגיאה".
רוב הסיכויים שלא הפעלת את mod_rewrite
בכל אופן, פתח את הלוג ותסתכל מה כתוב בו.
הפעלתי את mod_rewrite. ואני לא יודע איך נכנסים ללוג של האפאצ'י.
מה שכן מישהו אמר לי שצריך לשנות את ההגדרות של HTTPD.CONF, אבל אני לא יודע איזה הגדרות לשנות בידיוק.
הערת אגב:
עד עכשיו לא קלטתי ש-RewriteCond זה תנאי. D:
אולי באמת הגיע הזמן ללמוד קצת להשתמש ב-htaccess.
תודה, אלכס. :-)